Modern public telecommunications networks are rapidly migrating from circuit switched technologies utilizing time division multiplexing to packet switched transport, for all communications traffic. For many application services, such a telephone service, video phone service and a variety of other multimedia services, the packet implementations of the public networks utilize the session initiation protocol (SIP) to control communications to and from end users devices. Essentially, SIP is an application-layer control protocol used to set-up, change and/or tear-down any of a variety of different types of multimedia sessions through a packet switched network. The actual multimedia communications typically utilize other application-layer protocols. Packets containing SIP signaling messages are transported through the packet switched network in essentially the same manner as other packets. However, because of the critical nature of such signaling messages, mechanisms have been developed to reroute or resend SIP signaling messages in the event of failures in communication of such messages.
The relevant standard, e.g. as set forth in Internet Engineering Taskforce (IETF), RFC 3261 SIP: Session Initiation Protocol, June 2002, does not adequately address congestion, optimization, failure detection and recovery mechanisms for mission critical applications, such as wireless and/or wireline service providers, where SIP is a key protocol for many critical real time applications. Internet Engineering Taskforce (IETF), RFC Session Timers in the Session Initiation Protocol (SIP), April 2005, proposed an extension of the standard to determine if a SIP session is still active. The current technology for SIP rerouting relies on expiration of timers and associated retransmissions. If there is no acknowledgement received before the applicable timer expires, there is a retransmission of the unacknowledged SIP message. The current failure detection and recovery mechanisms have fundamental limitations for carrier-class networks where five-nines (99.999%) reliability is required to deploy SIP architectures into production environments.
More specifically, the SIP client, which can be executing as a process on a device in a mobile switching center for example, or a mobile device, reaches the remote SIP proxy, via various SIP servers, or back-to-back user agent (B2BUA) functions. The current SIP specifications use retransmission timers, increased command sequence (Cseq) numbers, and Positive ACKs to detect a failed B2BUA, and initiate appropriate recovery action. The typical sequence of failure detection and recovery involves activation of a SIP retransmission timer, relative to the first B2BUA (B2BUA1) on the first UAC (UAC1), when a new SIP request is received and a dialog is initiated with a second B2BUA (B2BUA2), for example a remote base station controller on a peering network. A particular SIP session is uniquely identified by the Call-ID and Cseq combination of values, hence this is the state information maintained by UAC1 and the remote peer UAS2. If a B2BUA involved in the session fails or if network connectivity with B2BUA1 fails, then the retransmit timer in UAC1 will time out. Expiration of the retransmit timer in UAC1 causes the UAC1 to initiate retransmission of the SIP message. The retransmission sequence includes an increase in the timer value, using a backoff exponential algorithm. The retransmission sequence typically will take on the order of seconds to tens of seconds, which is clearly unacceptable in a service provider network offering real time services, such as voice or video. During this time window, there is potential loss of call revenue if calls are not processed in a timely manner. Another problem, is that the backup SIP servers are statically configured, so the server is never sure it is the optimal SIP router to accept traffic with the given dynamic changes that occur in the network and servers. Hence, current technology reacts very slowly to changes in the control plan, such as failures or congestion (network or servers), which results in loss of revenue if calls are not processed in a timely manner.
Further, there are no optimizations methods possible with the current technologies. For example there may be a reason why the service provider may want to dynamically divert SIP traffic to improve performance, but there is no mechanism to reroute SIP traffic other than the timer based mechanism outlined above.
Hence a need exists for an improved technique to optimally route and/or reroute SIP traffic in a more dynamic and real time manner.